package com.team7.common.utils;

import com.aliyun.oss.OSS;
import com.aliyun.oss.OSSClientBuilder;
import org.springframework.web.multipart.MultipartFile;

import java.io.IOException;
import java.util.UUID;

/**
 * @ClassName: OSSUtil
 * @Description:
 * @Author: 赵孟阳
 * @Date: 2021/10/19 11:31
 */
public class OSSUtil {
    public static String getOssUrl(MultipartFile file) {

        //得到图片的名字
        String filename = file.getOriginalFilename();
        //得到图片的后缀名
        String s = filename.substring(filename.lastIndexOf("."));
        //获取一个随机的名字
        UUID uuid = UUID.randomUUID();
        //存到阿里云数据库的图片名字
        filename = uuid + s;

        // Endpoint以杭州为例，其它Region请按实际情况填写。
        String endpoint = "oss-cn-hangzhou.aliyuncs.com";
        // 阿里云主账号AccessKey拥有所有API的访问权限，风险很高。强烈建议您创建并使用RAM账号进行API访问或日常运维，请登录RAM控制台创建RAM账号。
        String accessKeyId = "LTAI4GEXcPDSVpTKPNbcW136";
        String accessKeySecret = "nwjfHwDaLxl1rvymANPwwRosqKC8F9";
        String bucketName = "kk-books";
        // <yourObjectName>上传文件到OSS时需要指定包含文件后缀在内的完整路径，例如abc/efg/123.jpg。
        String objectName = filename;

        // 创建OSSClient实例。
        OSS ossClient = new OSSClientBuilder().build(endpoint, accessKeyId, accessKeySecret);

        // 上传文件到指定的存储空间（bucketName）并将其保存为指定的文件名称（objectName）。
        try {
            ossClient.putObject(bucketName, objectName, file.getInputStream());
        } catch (IOException e) {
            e.printStackTrace();
        }
        // 关闭OSSClient。
        ossClient.shutdown();

        String url = "https://" + bucketName + "." + endpoint + "/" + filename;

        return url;
    }
}
